package security_strategy

import (
	"app/app_src/framework/ioc"

	"github.com/gin-gonic/gin"
)

// 检查 CSRF 令牌的函数
type CheckCsrfToken func(*gin.Context) bool

const IOC_KEY_CHECK_CSRF_TOKEN = "security_strategy.CheckCsrfToken"

// 调用 CheckCsrfToken 函数
func CallCheckCsrfTokenFunc(ctx *gin.Context) bool {
	checkFunc := ioc.Get[CheckCsrfToken](IOC_KEY_CHECK_CSRF_TOKEN)

	if checkFunc == nil {
		// 没有找到则默认不检查
		return true
	}

	return checkFunc(ctx)
}
